"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/6/11 14:10
@Description : 
 如何实现通过python语言操作数据库
 1. 关系型数据库
    oracle        cx_oracle
    mysql         mysqldb   pymysql  pip install pymysql
    sqlserver
    sqlite
增删改查    标准  统一入口  屏蔽了不同数据库间的差异性

 2.非关系型数据库
    redis
    md
"""
import pymysql
from pymysql.cursors import DictCursor

"""
步骤:
1. 获取连接
2. 获取游标对象     操作sql语句的对象
3. 处理结果集
4. 释放资源 
"""
mysql_connection = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='python2512')
print(mysql_connection)
# 编写sql语句
str_sql = "select * from user"
# 获取游标对象
cursor = mysql_connection.cursor()
# 返回值是数据的总条数
result = cursor.execute(str_sql)
# 处理结果集
"""
rows = cursor.fetchall()
print(rows, type(rows))
for row in rows:
    print(row)
"""

"""
row = cursor.fetchone()
print(row)
row = cursor.fetchone()
print(row)
row = cursor.fetchone()
print(row)
"""

"""
rows = cursor.fetchmany(2)
print(rows)

"""

row = cursor.fetchone()
print(row)
"""
通过移动游标 实现数据的重复读取
1. 绝对移动    数据的起始位置 absolute
2. 相对移动    当前位置      relative
"""
# cursor.scroll(2,mode='absolute')
# row = cursor.fetchone()
# print(row)

# cursor.scroll(-1, mode='relative')
cursor.scroll(1, mode='relative')

row = cursor.fetchone()
print(row)

# 释放资源
cursor.close()
mysql_connection.close()
